package com.yifeng.repo.base.security.context.params;

import com.yifeng.repo.base.security.auth.constant.SecurityTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Created by daibing on 2024/2/29.
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SecurityCheckParam {

    /**
     * 鉴权类型
     */
    private SecurityTypeEnum securityType;

    /**
     * 请求未带鉴权类型header，默认使用鉴权类型
     */
    private boolean defaultSecurity;

    /**
     * 是否仅从header获取token。针对application/x-www-form-urlencoded类型请求，需要关闭从Parameter获取参数，避免业务获取不到方法。
     */
    private boolean onlyGetTokenFromHeader;

    /**
     * 是否从session获取token，兼容R1项目。
     */
    private boolean getTokenFromSession;

    /**
     * 兼容老业务引入配置允许无token通行
     */
    private boolean allowPassByNonToken;

    /**
     * 启用鉴权后检查接口权限
     */
    private boolean checkApi;

    /**
     * 启用鉴权后是否加载数据权限
     */
    private boolean loadPermission;

    /**
     * 检查权限失败直接返回应用级别默认配置
     */
    private boolean successIfCheckSecuredException;

}
